package com.lframework.xingyun.basedata.bo.member;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.lframework.starter.common.constants.StringPool;
import com.lframework.starter.web.core.bo.BaseBo;
import java.time.LocalDateTime;

import com.lframework.xingyun.basedata.entity.Member;
import com.lframework.xingyun.basedata.entity.MemberLevel;
import com.lframework.xingyun.basedata.entity.MemberLevelDetail;
import io.swagger.annotations.ApiModelProperty;

import lombok.Data;

/**
 * <p>
 * 会员等级生效明细 QueryBo
 * </p>
 *
 * @author mos
 */
@Data
public class QueryMemberLevelDetailBo extends BaseBo<MemberLevelDetail> {

    /**
     * ID
     */
    @ApiModelProperty("ID")
    private String id;

    /**
     * 会员id
     */
    @ApiModelProperty("会员id")
    private String memberId;

    /**
     * 会员
     */
    @ApiModelProperty("会员")
    private Member member;

    /**
     * 会员等级
     */
    @ApiModelProperty("会员等级")
    private String levelId;

    /**
     * 会员等级
     */
    @ApiModelProperty("会员等级")
    private MemberLevel level;

    /**
     * 开始时间
     */
    @ApiModelProperty("开始时间")
    @JsonFormat(pattern = StringPool.DATE_TIME_PATTERN)
    private LocalDateTime beginDate;

    /**
     * 结束时间
     */
    @ApiModelProperty("结束时间")
    @JsonFormat(pattern = StringPool.DATE_TIME_PATTERN)
    private LocalDateTime endDate;

    /**
     * 激活状态
     */
    @ApiModelProperty("激活状态")
    private Boolean activate;

    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    private String createBy;

    /**
     * 创建人ID
     */
    @ApiModelProperty("创建人ID")
    private String createById;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = StringPool.DATE_TIME_PATTERN)
    private LocalDateTime createTime;

    /**
     * 修改人
     */
    @ApiModelProperty("修改人")
    private String updateBy;

    /**
     * 修改人ID
     */
    @ApiModelProperty("修改人ID")
    private String updateById;

    /**
     * 修改时间
     */
    @ApiModelProperty("修改时间")
    @JsonFormat(pattern = StringPool.DATE_TIME_PATTERN)
    private LocalDateTime updateTime;

    public QueryMemberLevelDetailBo() {

    }

    public QueryMemberLevelDetailBo(MemberLevelDetail dto) {

        super(dto);
    }

    @Override
    public BaseBo<MemberLevelDetail> convert(MemberLevelDetail dto) {
        return super.convert(dto);
    }

    @Override
    protected void afterInit(MemberLevelDetail dto) {

    }
}
